package cn.iocoder.yudao.module.enterprise.service.emissionbasis;

import cn.iocoder.yudao.module.enterprise.controller.admin.emissionbasis.vo.BasisValueCreateReqVO;
import cn.iocoder.yudao.module.enterprise.controller.admin.emissionbasis.vo.BasisValueUpdateReqVO;
import cn.iocoder.yudao.module.enterprise.dal.dataobject.emissionbasis.BasisValueDO;

import javax.validation.Valid;
import java.util.Collection;
import java.util.List;

/**
 * 基准排放量 Service 接口
 *
 * @author StevenShen
 */
public interface BasisValueService {

    /**
     * 创建基准排放量
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createBasisValue(@Valid BasisValueCreateReqVO createReqVO);

    /**
     * 更新基准排放量
     *
     * @param updateReqVO 更新信息
     */
    void updateBasisValue(@Valid BasisValueUpdateReqVO updateReqVO);

    /**
     * 删除基准排放量
     *
     * @param id 编号
     */
    void deleteBasisValue(Long id);

    /**
     * 获得基准排放量
     *
     * @param id 编号
     * @return 基准排放量
     */
    BasisValueDO getBasisValue(Long id);

    /**
     * 获得基准排放量列表
     *
     * @param ids 编号
     * @return 基准排放量列表
     */
    List<BasisValueDO> getBasisValueList(Collection<Long> ids);

    /**
     * 获取基准排放量
     *
     * @param timeInterval 时间区间
     * @return 基准排放量
     */
    BasisValueDO getBasisValueByBasisIdAndTimeInterval(Long basisId, String timeInterval);

}
